package com.trade.dao;

import com.trade.data.*;
import com.trade.data.type.*;
import java.util.*;

public interface IEquityDAO{

	public int addEquity( InstrumentVO intrumentVO ) throws Exception;
	public int updateEquity( InstrumentVO intrumentVO ) throws Exception;
	public int deleteEquity( InstrumentVO intrumentVO ) throws Exception;
	public InstrumentVO getEquity( InstrumentVO intrumentVO ) throws Exception;
	public List<InstrumentVO> getAllEquity(String filter) throws Exception;

	public int addHistoricalData( EquityHistoricalDataVO historicalDataVO ) throws Exception;
	public int updateHistoricalData( EquityHistoricalDataVO historicalDataVO ) throws Exception;
	public int deleteHistoricalData( EquityHistoricalDataVO historicalDataVO ) throws Exception;
	public List<EquityHistoricalDataVO> getHistoricalData( HistoricalDataFilterVO historicalDataVO ) throws Exception;

	public int addIntradayData( EquityIntradayDataVO historicalDataVO ) throws Exception;
	public int updateIntradayData( EquityIntradayDataVO historicalDataVO ) throws Exception;
	public int deleteIntradayData( EquityIntradayDataVO historicalDataVO ) throws Exception;
	public List<HistoricalDataVO> getIntradayData( HistoricalDataFilterVO historicalDataVO ) throws Exception;
	
	//For Intraday calculations.
	public Map<String, List<HistoricalDataVO>> getIntradayDataInCache()throws Exception;
	public void addIntradayDataInCache(List<HistoricalDataVO> equityHistoricalDataList)throws Exception;
	
	public void addEquitySMAIntradayHistoricalData(HistoricalDataVO historicalDataVO)throws Exception;
	
	//For RSI
	public void addEquityGainIntradayHistoricalData(HistoricalDataVO historicalDataVO);
	public void addEquityLossIntradayHistoricalData(HistoricalDataVO historicalDataVO); 


}